home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 3 / DOS064.dsk / SURVEY DATA REDUCTION.bas < prev    next >
BASIC Source File  |  2012-02-16  |  4KB  |  107 lines

  1. 10 C = 57.29577951
  2. 30  DIM Q(30): DIM D(30): DIM M(30): DIM F(30)
  3. 35  CALL  -936: PRINT "    SURVEY DATA REDUCTION": PRINT : PRINT "    AND ERROR CORRECTION"
  4. 51  PRINT : PRINT "     P. LUTUS 11/77"
  5. 60  READ Q$(0),Q$(1),Q$(2),Q$(3)
  6. 70  DATA "NE","SE","SW","NW"
  7. 80  FOR DP = 1 TO 30
  8. 82  PRINT : PRINT : PRINT 
  9. 83  PRINT "         0"
  10. 85  PRINT "     NW     NE"
  11. 86  PRINT : PRINT "   90    +    90"
  12. 87  PRINT : PRINT "     SW     SE"
  13. 88  PRINT "         0"
  14. 100  PRINT : PRINT "LINE NUMBER ";DP
  15. 110  PRINT : PRINT "QUADRANT (NE,SE,SW,NW, E=END) ";: INPUT A$ 
  16. 120  FOR T = 0 TO 3: IF A$ < >Q$(T)  THEN  NEXT T
  17. 125  IF A$ = "E"  THEN 180
  18. 130  IF T = 4  THEN 110
  19. 140 Q(DP) = T: PRINT : PRINT "DEGREES ";: INPUT D(DP): PRINT : PRINT "MINUTES ";: INPUT M(DP)
  20. 150  PRINT : PRINT "DISTANCE (DEC. FT.) ";: INPUT F(DP)
  21. 155  IF E = 1  THEN  RETURN 
  22. 160  CALL  -936: NEXT DP: GOTO 200
  23. 180 Q(DP) =  -1
  24. 190  CALL  -936
  25. 200  PRINT : PRINT "    OPTIONS:" 
  26. 216  PRINT : PRINT "   COMPUTE(C)" 
  27. 217  PRINT : PRINT "   EDIT(E)" 
  28. 218  PRINT : PRINT "   LIST(L)" 
  29. 219  PRINT : PRINT "   REVISE(R)" 
  30. 220  PRINT : PRINT "   NEW RUN(N)";: GET A$
  31. 222  CALL  -936
  32. 225 E = 0:CR = 0
  33. 230  IF A$ = "C"  THEN 300
  34. 240  IF A$ = "E"  THEN 600
  35. 245  IF A$ = "L"  THEN 1000
  36. 246  IF A$ = "R"  THEN 1600
  37. 250  IF A$ = "N"  THEN 80
  38. 252  GOTO 200
  39. 300 XV = 0:YV = 0:PM = 0:OM = 0:PA = 0:OA = 0:AR = 0
  40. 305  CALL  -936: PRINT : PRINT "   <*> COMPUTING <*>"
  41. 310  FOR T = 1 TO DP -1
  42. 320 RA = D(T ) +(M(T )/60)
  43. 330  IF Q(T ) = 1  THEN RA = 180 -RA 
  44. 340  IF Q(T ) = 2  THEN RA = 180 +RA 
  45. 350  IF Q(T ) = 3  THEN RA = 360 -RA  
  46. 355 RA = RA/C
  47. 360 X = F(T) *( SIN(RA)):Y = F(T) *( COS(RA)) 
  48. 370 XV = XV +X:YV = YV +Y
  49. 375  GOSUB 800
  50. 377  IF CR = 1  THEN  RETURN 
  51. 380  NEXT T: PRINT : PRINT :
  52. 390  PRINT "  FINAL POSITION (DECIMAL FT):
  53. 392  PRINT : PRINT "  X= ";XV
  54. 394  PRINT "  Y= ";YV
  55. 400  PRINT : PRINT "  AREA (SQ. FT.)= ";A
  56. 405  PRINT : PRINT "  ACRES= ";(A /43560) 
  57. 410  PRINT : GOSUB 2000
  58. 420  GOTO 200
  59. 600  PRINT : PRINT 
  60. 605  PRINT "EDIT WHICH LINE NUMBER ";: INPUT EL:SV = DP:DP = EL:E = 1: GOSUB 82
  61. 610 E = 0:DP = SV: GOTO 200 
  62. 800 PM =  SQR((XV ^2) +(YV ^2))
  63. 805  IF YV = 0  THEN YV = 1E -30
  64. 810 PA = ( ATN(XV/YV) *C)
  65. 820  IF PA <0  THEN PA = 180 +PA
  66. 830  IF XV <0  THEN PA = 180 +PA
  67. 840 AR = AR +((PM *OM  * SIN((OA -PA)/C))/2)
  68. 845 A =  ABS(AR)
  69. 850 OA = PA: OM = PM: RETURN  
  70. 883  PRINT "         0": PRINT : PRINT 
  71. 1000  PRINT "LINE";: HTAB 8: PRINT "QUAD";: HTAB 15: PRINT "DEG";: HTAB 21: PRINT "MIN";: HTAB 27: PRINT "FEET"
  72. 1001  IF RE  THEN  RETURN 
  73. 1002  FOR L = 1 TO 30
  74. 1004  IF Q(L) <0  THEN 1040
  75. 1008  PRINT : PRINT L;
  76. 1009 QF = Q(L)
  77. 1010  HTAB 8: PRINT Q$(QF);
  78. 1012  HTAB 15: PRINT D(L);
  79. 1013  HTAB 21: PRINT M(L);
  80. 1015  HTAB 27: PRINT F(L);
  81. 1020  IF  PEEK(37) <21  THEN 1035
  82. 1022  PRINT : GOSUB 2000:RE = 1: GOSUB 1000: PRINT :RE = 0: GOTO 1008
  83. 1035  NEXT L
  84. 1040  PRINT : GOSUB 2000: GOTO 200
  85. 1600  PRINT : PRINT : PRINT "THIS ROUTINE WILL CHANGE" 
  86. 1602  PRINT "ONE OF THE LINES TO CANCEL AN ERROR"
  87. 1603  PRINT "OF FINAL POSITION."
  88. 1604  PRINT : PRINT "IT MUST BE USED AFTER 'COMPUTE'"
  89. 1606  PRINT "AND YOU SHOULD KNOW THE LINE MOST": PRINT "LIKELY TO BE IN ERROR"
  90. 1608  PRINT : PRINT "TO RETURN TO 'OPTIONS',ENTER (R).": PRINT "TO REVISE, ENTER LINE NUMBER": PRINT "TO BE CHANGED ";: INPUT A$
  91. 1610  IF A$ = "R"  THEN 200
  92. 1615 K =  VAL(A$)
  93. 1616 T = K
  94. 1618 XV =  -XV:YV =  -YV
  95. 1620 CR = 1: GOSUB 320
  96. 1630 QI = PA/90:CR = 0
  97. 1635  IF PA >180  THEN PA = 360 -PA
  98. 1636  IF PA >90  THEN PA = 180 -PA
  99. 1640 DI =  INT(PA):MI = (PA -DI) *60
  100. 1642  IF  ABS(MI) <1  THEN MI = 0
  101. 1645 QI =  INT(QI):DI =  INT(DI)
  102. 1650 Q(K) = (QI):D(K) = (DI):M(K) = (MI):F(K) = (PM)
  103. 1660  PRINT 
  104. 1670  PRINT "LINE ";K;" HAS BEEN CHANGED"
  105. 1675  IF F(K +1) = 0  THEN Q(K +1) =  -1
  106. 1680  GOTO 200
  107. 2000  PRINT : PRINT "     (PRESS ANY KEY TO CONTINUE)";: GET A$: CALL  -936: RETURN